chore(deps): update rubocop - #14
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
May 17, 2025 23:44
ee6e39f to
e1c9c8b
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
June 5, 2025 00:15
e1c9c8b to
931904e
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
June 14, 2025 23:40
931904e to
24cd4d9
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
June 22, 2025 07:48
24cd4d9 to
48c59f9
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
July 13, 2025 04:09
48c59f9 to
b4456fa
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
July 27, 2025 00:13
b4456fa to
b3d6515
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
3 times, most recently
from
August 11, 2025 07:35
fdbf1c8 to
8b24857
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
August 15, 2025 19:33
8b24857 to
5fb4fa0
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
August 28, 2025 00:15
9a35a0e to
fb67645
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
3 times, most recently
from
September 6, 2025 14:36
33a6438 to
44fb749
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
September 28, 2025 07:50
7ecdbba to
4b974b5
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
October 23, 2025 06:39
162c341 to
3c5f273
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
November 1, 2025 11:54
3c5f273 to
79cde64
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
November 19, 2025 03:48
2f29390 to
086b5dd
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
November 29, 2025 15:39
b703ba7 to
d3e994e
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
December 24, 2025 11:46
af6ac71 to
f185084
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
January 8, 2026 07:08
c0b7bd4 to
278b12b
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
February 3, 2026 12:00
827d496 to
0171139
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
February 14, 2026 03:08
0171139 to
ccdc29a
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
March 8, 2026 08:17
7e76851 to
ee378e4
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
March 14, 2026 15:49
ee378e4 to
023c88b
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
March 31, 2026 17:12
023c88b to
0d545ec
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
April 15, 2026 19:28
0d545ec to
9603454
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
3 times, most recently
from
May 17, 2026 06:47
223ced2 to
a830074
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
May 21, 2026 08:15
a830074 to
ab0ff6e
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
May 30, 2026 15:52
ab0ff6e to
852db93
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
June 7, 2026 12:15
b709c8e to
e7a4b61
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
2 times, most recently
from
June 21, 2026 11:44
8f912bd to
4fd928a
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
July 4, 2026 04:11
4fd928a to
8e0bedb
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
July 15, 2026 04:14
8e0bedb to
e956126
Compare
renovate
Bot
force-pushed
the
renovate/rubocop
branch
from
August 7, 2026 03:08
e956126 to
9ee75f1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
'~> 1.75.0'→'~> 1.89.0''~> 2.27.0'→'~> 2.28.0''~> 1.24.0'→'~> 1.26.0''~> 2.30.0'→'~> 2.36.0''~> 3.5.0'→'~> 3.10.0''~> 2.31.0'→'~> 2.32.0'Release Notes
rubocop/rubocop (rubocop)
v1.89.0Compare Source
New features
DelegatingMethodsoption toLint/DuplicateMethodsto register customdelegate-shaped methods. ([@bbatsov][])DisallowedCopsconfiguration option toStyle/DisableCopsWithinSourceCodeDirective. ([@hammadxcm][])AllowYARDCommentBlockSeparatoroption toLayout/LeadingCommentSpace. ([@koic][])Lint/DeprecatedReferencecop to detect references to methods and constants documented as@deprecated, powered by the project index. ([@bbatsov][])Lint/NameTypocop. ([@bbatsov][])Lint/UnusedPrivateMethodcop for project-wide dead-code detection via the project index (disabled by default). ([@bbatsov][])Style/DisableCopsWithinSourceCodeDirectiveimpossible to disable via directive comments when explicitly enabled withEnabled: true. ([@rafaelfranca][])textDocument/codeActionrequests in the built-in language server, so LSP clients that request code actions (Eglot, Helix, Flycheck, ...) can apply RuboCop's autocorrects, not only clients that read them off the published diagnostic. ([@bbatsov][])NewCopsin department configuration to enable pending cops per department, including cops added up to a specific version (e.g.Style: NewCops: '1.19'). ([@koic][])Layout/IndentationWidthandStyle/ClassAndModuleChildren. ([@ioquatix][], [@koic][])Bug fixes
Lint/ToEnumArgumentswhen explicit extra keyword arguments are passed (e.g.def m(x:); to_enum(:m, x: x, y: 1); end), which raisesArgumentErrorwhen the enumerator is used. ([@RedZapdos123][])Layout/HashAlignmentwhen usingEnforcedHashRocketStyle: tableand a hash key spans multiple lines. ([@dduugg][])Lint/UselessAssignmentwith modifier conditions. ([@bbatsov][])Lint/Voidwith setter methods. ([@bbatsov][])Naming/VariableNumberwhen using an empty symbol hash key. ([@koic][])Style/MutableConstantwithData.define. ([@bbatsov][])Style/MissingRespondToMissingwhenrespond_to_missing?is defined in a reopening of the class andUseProjectIndexis enabled. ([@bbatsov][])Lint/LiteralAsConditionwhen a literal condition has an empty branch. ([@koic][])Lint/UselessRuby2Keywordswhenruby2_keywordsis used with a symbol but no method definition is found. ([@koic][])Metrics/MethodLengthwhen a method contains a heredoc and__ENCODING__. ([@koic][])Style/ArrayIntersectcop when the block-based check callsmember?/include?without an explicit receiver. ([@dduugg][])Style/NegativeArrayIndexcop. ([@viralpraxis][])Style/RedundantFormatwhen a format string uses a positional argument number beyond the 64-bit range. ([@koic][])Style/RedundantFormatwhen the argument for a positional variable width is missing. ([@koic][])Lint/LiteralInInterpolation. ([@bbatsov][])Style/ArrayIntersectwhen using safe navigationnone?with a block. ([@koic][])Style/MultipleComparisonthat dropped an allowed method comparison appearing between the compared values. ([@bbatsov][])Style/RedundantFileExtensionInRequirethat produced invalid Ruby when a backslash preceded the.rbextension. ([@bbatsov][])Lint/Voidto no longer autocorrect a constant used in a void context, since removing it can change behavior through constant autoloading side effects. ([@bbatsov][])Lint/InheritExceptionwhenExceptionis inherited indirectly through a project class (UseProjectIndex). ([@bbatsov][])Lint/AmbiguousAssignmentwhen using attribute or index assignment. ([@sngsmz][])Layout/ClassStructurewhen class body elements are wrapped inbeginblocks. ([@koic][])Layout/ClassStructurewhen usingprivate_class_methodorpublic_class_methoddef modifiers. ([@koic][])Style/ArrayIntersectwhen the receiver ofinclude?in a block is not an array literal. ([@koic][])Style/MultilineIfThenwhen using the Prism parser engine and anelsifwithoutthenfollows a branch usingthenwith a body on the same line. ([@koic][])Lint/DuplicateMethodsfor anonymous classes (Class.new) passed as arguments to the same named-receiver method call (e.g.T.cast). EachClass.newblock is an independent class, so methods defined in different blocks should not be treated as duplicates. ([@rafaelfranca][])Style/RedundantConstantBaseinside namespaces when the constant provably resolves identically without::(UseProjectIndex). ([@bbatsov][])Style/LambdaandStyle/SymbolProcproducing a syntax error like->(x)(&:method)when both cops run onlambda { |x| x.method }. ([@koic][])UseProjectIndex). ([@bbatsov][])Layout/LineLengthautocorrection for endless methods with block bodies. ([@hervetatche][])Lint/ConstantReassignmentwhen a built-in constant name is assigned andUseProjectIndexis enabled. ([@bbatsov][])Style/ClassAndModuleChildrenignoringEnforcedStyleForClassesandEnforcedStyleForModules, and skip autocorrection when mixed per-type styles make the result ambiguous. ([@bbatsov][])Layout/MultilineMethodCallIndentationwhen a line has multiple chained calls before a single-line block. ([@hammadxcm][])Style/RedundantLineContinuationby verifying backslash removal against a reparse of the source instead of hand-written grammar rules. ([@bbatsov][])Naming/PredicatePrefixandNaming/AccessorMethodNamewhen the method overrides an ancestor method defined in the project (UseProjectIndex). ([@bbatsov][])Style/StaticClasswhen the class is subclassed elsewhere in the project (UseProjectIndex). ([@bbatsov][])Style/MethodCallWithArgsParenthesesomit_parenthesesstyle by verifying each omission by reparsing before registering an offense. ([@bbatsov][])Changes
Style/Documentationto accept a reopened class or module documented at another definition site whenUseProjectIndexis enabled. ([@bbatsov][])rubocop-i18nto suggested extensions. ([@tejasbubane][])executeCommandProviderand the supported code action kinds in the language server's capabilities, so clients can discover therubocop.formatAutocorrectsandrubocop.formatAutocorrectsAllcommands. ([@bbatsov][])AllCops/UseProjectIndexis enabled. ([@bbatsov][])Lint/AmbiguousBlockAssociationto detectdo...endblocks likely intended for enumerable methods in arguments. ([@hammadxcm][])Layout/LineLengthperformance on files with large collection literals. ([@koic][])Style/ConditionalAssignmentskip cases it cannot safely rewrite instead of emitting invalid code or erroring on unusual branch shapes. ([@bbatsov][])Style/IfUnlessModifieroffense message when the condition is part of a larger expression. ([@rafa-el-souza][])Style/DisableCopsWithinSourceCodeDirectiveperformance on largeAllowedCopsandDisallowedCopslists by matching directives against memoized sets instead of rebuilding an array lookup per comment. ([@corsonknowles][])Style/RedundantLineContinuationperformance on files with many adjacent string literals joined by line continuations. ([@koic][])Lint/DuplicateMethodsto detect duplicates across files whenUseProjectIndexis enabled. ([@bbatsov][])Style/IfUnlessModifier,Style/WhileUntilModifier,Style/GuardClause, and other modifier cops respectLayout/LineLengthexemptions (allowed patterns, cop directives, allowed URIs) when checking whether the modifier form fits on one line. ([@bbatsov][])Lint/SafeNavigationChainautocorrection as unsafe. ([@koic][])Lint/ConstantResolutionto report only genuinely ambiguous constants whenUseProjectIndexis enabled. ([@bbatsov][])Style/RedundantAssignmentoffenses when there are comments between assignment and reference. ([@lovro-bikic][])Style/ClassAndModuleChildrenautocorrection to consult the project index for the namespace kind and definition sites whenUseProjectIndexis enabled. ([@bbatsov][])Lint/MissingSuperto skip the constructor offense when the project index shows no ancestor definesinitialize(UseProjectIndex). ([@bbatsov][])Style/Copyrightto validateAutocorrectNoticeonly when autocorrection is requested (-a/-A), so plain inspection no longer raises a warning. ([@koic][])Layout/RedundantLineBreakto verify each correction by reparsing before registering an offense. ([@bbatsov][])Style/RedundantParenthesesto verify each correction by reparsing before registering an offense. ([@bbatsov][])Style/SoleNestedConditionalto only register an offense when its correction is verified to parse. ([@bbatsov][])v1.88.2Compare Source
Bug fixes
Lint/ToJSON, which did not flag singletondef self.to_jsondefinitions. ([@bbatsov][])Lint/UnreachableCode, which only flagged the first statement after a flow-of-control statement instead of every unreachable statement that followed it. ([@bbatsov][])Lint/UselessNumericOperation, which only flagged bare method-call receivers and ignored local variables, instance/class/global variables, and constants (e.g.@x + 0,CONST * 1). ([@bbatsov][])Lint/Voidwhere safe-navigation calls to nonmutating methods (e.g.x&.sort) were not flagged whenCheckForMethodsWithNoSideEffectsis enabled. ([@bbatsov][])Style/ArrayIntersectwith the block form usinginclude?(e.g.array1.any? { |e| array2.include?(e) }), which was only detected formember?. ([@bbatsov][])Style/CollectionCompact, which did not flaggrep_v(nil)/grep_v(NilClass)on a safe-navigation call (e.g.array&.grep_v(nil)). ([@bbatsov][])Style/DefWithParentheseswith a single-line definition whose body follows a semicolon (e.g.def foo(); end), where the parentheses can be safely omitted. ([@bbatsov][])Style/MixinUsagewhen including multiple modules in one statement. ([@bbatsov][])Style/ModuleFunctionwhen the module body is a single statement. ([@bbatsov][])Style/RedundantCurrentDirectoryInPathwith double-quoted strings containing interpolation. ([@bbatsov][])Style/RedundantHeredocDelimiterQuoteswith double-quoted delimiters whose body contains interpolation or escapes. ([@bbatsov][])Gemspec/DuplicatedAssignmentwith multiple specifications. ([@bbatsov][])Layout/CommentIndentationwith a comment above an inline access modifier (e.g.private def foo) whenLayout/AccessModifierIndentationis configured withEnforcedStyle: outdent. ([@grk][])Style/InvertibleUnlessConditionwith a multi-statement begin condition. ([@bbatsov][])Style/ArgumentsForwardingandStyle/MethodDefParentheseswhen autocorrection conflicts while adding parentheses to method definition arguments. ([@koic][])Lint/ToJSONthat produced invalid Ruby (def to_json(*_args)()) when the method had explicit empty parentheses. ([@bbatsov][])Style/MethodCallWithoutArgsParentheseswhen empty parentheses span multiple lines and the method call has a block. ([@koic][])Style/HashConversionwith a splat argument, which previously produced an invalid hash literal. ([@bbatsov][])Style/HashLookupMethodwith safe navigation, where the suggested bracket form would be the unreadablehash&.[](key). ([@bbatsov][])Style/IdenticalConditionalBranchesthat hoisted the moved expression to column zero instead of matching the surrounding indentation. ([@bbatsov][])Style/InvertibleUnlessConditionwith mixed&&/||conditions, which lost the required parentheses when inverting. ([@bbatsov][])Style/TrivialAccessorswhenAllowPredicates: falseis set and a trivial reader is defined as a predicate class method. ([@koic][])Layout/LineLengthwithSplitStringswhen an over-long string is indented under a multi-line parent. ([@bbatsov][])Style/MissingRespondToMissingwhenmethod_missingis defined at the top level or alongside sibling classes. ([@bbatsov][])Layout/ElseAlignmentwhen usingelsewithin a block that is part of a larger expression. ([@koic][])Layout/MultilineMethodCallIndentationwhen a method chain is nested inside a parenthesized argument list or a grouped expression within a hash pair value. ([@koic][])Style/StructInheritanceautocorrect dropping leading indentation when class is inside a module or namespace. ([@amckinnie][])Style/DocumentationMethodignoringAllowedMethodsfor inline modifier defs. ([@bbatsov][])Style/LambdaCallwhen the argument list contains a comment, which the autocorrect would have dropped. ([@bbatsov][])Changes
on_new_investigation,on_investigation_end, andon_other_fileonly to cops that refine them, and by skippingafter_*dispatch when no cop needs it. ([@bbatsov][])Lint/Debuggerperformance on code without debugger calls. ([@bbatsov][])Lint/NumericOperationWithConstantResultautocorrect as unsafe because it drops the operands, discarding their side effects and silencing cases where the result is not actually constant (e.g.x / xraises whenxis0). ([@bbatsov][])AllowedPatterns,ForbiddenPatterns, andAllowedMethodsby compiling the configured patterns only once. ([@bbatsov][])Style/IfUnlessModifierand other modifier cops on files with many comments or conditionals. ([@bbatsov][])v1.88.1Compare Source
Bug fixes
Bundler/GemCommentwith a non-literal gem option key. ([@bbatsov][])Layout/ClassStructurewhen a class body is a single safe-navigation call (e.g.test&.private_methods(def foo; end)). ([@bbatsov][])Gemspec/DevelopmentDependencieswhenAllowedGemsis nil. ([@bbatsov][])Metrics/MethodLengthwith an anonymousdefine_method. ([@bbatsov][])Naming/InclusiveLanguagewith nil or emptyFlaggedTerms. ([@bbatsov][])Security/IoMethodswith a non-string-literal argument. ([@bbatsov][])Style/EmptyStringInsideInterpolationwith a modifier conditional. ([@bbatsov][])Style/OpenStructUsewith a bareOpenStructroot node. ([@bbatsov][])Style/TrailingUnderscoreVariablewhen a nested destructuring group consists only of underscore variables. ([@bbatsov][])Security/MarshalLoadwith a proc argument. ([@bbatsov][])Style/MethodDefParentheseswith named rest arguments underEnforcedStyle: require_no_parentheses. ([@bbatsov][])Style/MultilineMethodSignaturewhere a signature that fits on one line was skipped because the multi-line source length was measured instead of the collapsed width. ([@bbatsov][])Style/OptionalArgumentswith singleton methods. ([@bbatsov][])Style/RedundantFilterChainwith numbered-parameter blocks. ([@bbatsov][])Lint/ToEnumArgumentswhen a braced hash is passed to keyword parameters (e.g.to_enum(:m, { required: required })), which raisesArgumentErrorwhen the enumerator is used. ([@RedZapdos123][])Naming/FileNamewhen a class or module name contains multiple consecutiveAllowedAcronyms. ([@camallen][])Style/DirEmptywith a block. ([@bbatsov][])Style/EmptyLiteralwith numbered anditblock parameters. ([@bbatsov][])Style/EnvHome. ([@bbatsov][])Style/InlineCommentwithrubocop:tododirectives. ([@bbatsov][])Style/MultilineIfThen. ([@bbatsov][])Style/NumericPredicatewhen an allowed method encloses a numbered-parameter oritblock. ([@bbatsov][])Style/OptionHashwhen the options hash is forwarded with an explicitsuper. ([@bbatsov][])Style/RedundantFormatwith a lone format sequence. ([@bbatsov][])Style/RedundantSelfwith a rescue exception variable. ([@bbatsov][])Style/Semicolonwith a semicolon inside a string literal. ([@bbatsov][])Layout/ConditionPositionthat dropped a body statement sharing the condition's line via a semicolon. ([@bbatsov][])Layout/EmptyCommentthat deleted a heredoc when removing an empty comment trailing its opener. ([@bbatsov][])Layout/EmptyLineBetweenDefsthat inserted a blank line inside a heredoc body when an endless method's body was a heredoc. ([@bbatsov][])Layout/SpaceAroundOperatorsthat turned**=and/=compound assignments into**//, dropping the assignment. ([@bbatsov][])Naming/MemoizedInstanceVariableName. ([@bbatsov][])Naming/RescuedExceptionsVariableName. ([@bbatsov][])Style/DataInheritancewith a brace block. ([@bbatsov][])Style/EmptyCaseConditionas ayield/superargument. ([@bbatsov][])Style/EmptyCaseConditionwith low-precedencewhenvalues. ([@bbatsov][])Style/EmptyClassDefinitionwith a namespaced constant. ([@bbatsov][])Style/EmptyHeredoc. ([@bbatsov][])Style/EvenOdd. ([@bbatsov][])Style/ExactRegexpMatchwith a single quote. ([@bbatsov][])Style/FileNull. ([@bbatsov][])Style/For. ([@bbatsov][])Style/FormatStringwith a low-precedence argument. ([@bbatsov][])Style/FormatStringwith a splat argument. ([@bbatsov][])Style/HashSlice. ([@bbatsov][])Style/HashSyntaxwith a multi-pair bracelessreturn. ([@bbatsov][])Style/IfWithSemicolonthat changed semantics when the condition was an assignment, by parenthesizing it in the resulting ternary. ([@bbatsov][])Style/KeywordArgumentsMergingwith a block-pass argument. ([@bbatsov][])Style/KeywordParametersOrderthat inserted a spurious blank line when a keyword optional parameter already trailed the parameters list. ([@bbatsov][])Style/MapIntoArraywith a block-pass argument. ([@bbatsov][])Style/MethodCallWithoutArgsParentheseswithit()in a numbered block. ([@bbatsov][])Style/MinMaxComparisonwithunless. ([@bbatsov][])Style/MultilineMemoizationwithrescue/ensure. ([@bbatsov][])Style/MultilineMethodSignature. ([@bbatsov][])Style/NilLambdawhen a non-lambda proc returnsnilwithreturn. ([@bbatsov][])Style/ParallelAssignmentwith a%ielement needing quoting. ([@bbatsov][])Style/ParallelAssignmentwith a%welement needing escaping. ([@bbatsov][])Style/PercentLiteralDelimitersthat produced invalid Ruby for a%ssymbol whose content contains the preferred delimiter. ([@bbatsov][])Style/PerlBackrefsthat rewrote$+/$LAST_PAREN_MATCHto the non-equivalentRegexp.last_match(-1); these are no longer flagged. ([@bbatsov][])Style/RedundantExceptionthat changed the exception message when raisingRuntimeErrorwith anilmessage. ([@bbatsov][])Style/RedundantFormatwith anilargument. ([@bbatsov][])Style/RedundantLineContinuationthat corrupted an earlier line when removing a line continuation at the end of a multi-line file. ([@bbatsov][])Style/RedundantRegexpEscapethat stripped a necessary\@/\$escape after#in%r{}/%r//literals, enabling unintended interpolation. ([@bbatsov][])Style/RedundantStructKeywordInitwhenkeyword_initis not the last pair. ([@bbatsov][])Style/SingleLineDoEndBlockwhen the block body contains a heredoc. ([@bbatsov][])Style/StringHashKeyswhen the hash key is a heredoc. ([@bbatsov][])Style/TernaryParentheseswhen the condition is a modifierif/unlessexpression. ([@bbatsov][])Gemspec/RequireMFAwith multiple specifications. ([@bbatsov][])Lint/AssignmentInConditionandStyle/RedundantParentheseswhen an assignment is a statement of a multi-statementbeginin a condition. ([@koic][])Style/AccessorGroupingwith a single-line trailing comment. ([@bbatsov][])--fail-fastnot reporting offenses and exiting with a zero status when offenses are found. ([@koic][])Layout/BlockAlignmentwhenEnforcedStyleAlignWith: start_of_blockis used anddois on a continuation line of a parenthesisless multiline method call. ([@koic][])Style/HashTransformKeysandStyle/HashTransformValueswith a splat. ([@bbatsov][])Style/Lambdawith block-local arguments. ([@bbatsov][])Layout/IndentationWidthwhen the body of a multiline grouped expression in parentheses is not indented. ([@koic][])Bundler/OrderedGemsandGemspec/OrderedDependencieswhen the last declaration has no trailing newline, which joined two declarations into a single line. ([@koic][])Lint/UnescapedBracketInRegexpwhen a character class starts with a bare](e.g./[^]]/). ([@koic][])Changes
Style/MapCompactWithConditionalBlockautocorrect as unsafe becausecompactalso removesnilelements already present in the collection. ([@bbatsov][])Metrics/PerceivedComplexityto weight simplecase/inpattern branches the same ascase/whenbranches. ([@koic][])v1.88.0Compare Source
New features
Recursiveoption toStyle/MutableConstant. When enabled, the cop checks and freezes mutable literals nested inside arrays and hashes. The option is disabled by default to preserve existing behavior. ([@paracycle][])Bug fixes
Lint/RedundantSplatExpansionwhen splatting an empty literal (e.g.when *[]orrescue *[]), which expanded to invalid or semantically different code. ([@bbatsov][])Lint/RegexpAsConditionwhen the regexp literal is negated (e.g.if !/foo/), which inverted the condition. ([@bbatsov][])Lint/SymbolConversionwhen the receiver is an interpolated string containing an embedded double quote (e.g."foo#{bar}\"qux".to_sym), which produced a syntax error. ([@bbatsov][])Style/CombinableLoopswhen aforloop has an empty body, and stop autocorrecting consecutiveforloops whose iteration variables differ (which produced code referencing an undefined variable). ([@bbatsov][])Style/ConstantVisibilitywhen a visibility declaration has a numeric literal argument (e.g.private_constant 42). ([@bbatsov][])Lint/OrderedMagicCommentswhen anencodingmagic comment is preceded by a magic comment other thanfrozen_string_literal(e.g.shareable_constant_value). ([@bbatsov][])Lint/RedundantWithIndexwhen the block takes no arguments (e.g.ary.each_with_index { do_something }). ([@bbatsov][])Lint/RequireRelativeSelfPathwhen requiring the current file by name with its extension (e.g.require_relative 'foo.rb') and the file path is absolute. ([@bbatsov][])Lint/SafeNavigationChainwhen an ordinary method is chained after a parenthesized safe navigation call (e.g.(x&.foo).bar). ([@bbatsov][])Lint/SafeNavigationWithEmptywhen the receiver of&.empty?is a local variable, instance variable, constant, or other non-method-call expression. ([@bbatsov][])Lint/SendWithMixinArgumentwhensend/public_send/__send__is called with no explicit receiver or with aselfreceiver (e.g.send(:include, Bar)). ([@bbatsov][])Lint/ToEnumArgumentswhen more positional arguments are passed than the method accepts (e.g.def m(x); to_enum(:m, x, extra); end), which raisesArgumentErrorwhen the enumerator is used. ([@bbatsov][])Lint/UnescapedBracketInRegexpwhen an unescaped]is preceded by an escaped backslash (e.g./abc\\]123/). ([@bbatsov][])Style/ArrayIntersectWithSingleElementwith a splat argument (e.g.array.intersect?([*foo])), which is not a single element and was incorrectly rewritten toarray.include?(*foo). ([[@̴Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.